home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / tutorials / geometer / Theorems / proofs / Fagnano.T next >
Encoding:
Text File  |  1994-08-02  |  6.6 KB  |  112 lines

  1. .geometry "version 0.1";
  2. v1 = .free(-0.855978, -0.285326, "1");
  3. v2 = .free(-0.692935, 0.0652174, "2");
  4. v3 = .free(-0.369565, -0.326087, "3");
  5. l1 = .l.vv(v2, v3);
  6. l2 = .l.vv(v2, v1);
  7. l3 = .l.vv(v1, v3);
  8. l14 = .l.vlperp(v3, l2, .invisible, .longline);
  9. l15 = .l.vlperp(v2, l3, .invisible, .longline);
  10. l16 = .l.vlperp(v1, l1, .invisible, .longline);
  11. v23 = .v.ll(l1, l16, .magenta);
  12. v13 = .v.ll(l15, l3, .magenta);
  13. v12 = .v.ll(l14, l2, .magenta);
  14. l17 = .l.vv(v12, v13, .magenta);
  15. l18 = .l.vv(v13, v23, .magenta);
  16. ll19 = .l.vv(v23, v12, .magenta, .L0, .L1);
  17. l19 = .l.vv(v23, v12, .red, .L2, .L3, .L4, .L5, .L6, .L7);
  18. v11 = .v.lvmirror(l1, v1, .L1, .L2, .L3, .L4, .L5, .L6, .L7, "1'");
  19. l4 = .l.vv(v3, v11, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  20. l5 = .l.vv(v11, v2, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  21. v22 = .v.lvmirror(l4, v2, .L1, .L2, .L3, .L4, .L5, .L6, .L7, "2'");
  22. l6 = .l.vv(v3, v22, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  23. l7 = .l.vv(v22, v11, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  24. v33 = .v.lvmirror(l7, v3, .L1, .L2, .L3, .L4, .L5, .L6, .L7, "3'");
  25. l8 = .l.vv(v11, v33, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  26. l9 = .l.vv(v33, v22, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  27. v111 = .v.lvmirror(l9, v11, .L1, .L2, .L3, .L4, .L5, .L6, .L7, "1''");
  28. l10 = .l.vv(v33, v111, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  29. l11 = .l.vv(v111, v22, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  30. v222 = .v.lvmirror(l10, v22, .L1, .L2, .L3, .L4, .L5, .L6, .L7, "2''");
  31. l12 = .l.vv(v33, v222, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  32. l13 = .l.vv(v222, v111, .L1, .L2, .L3, .L4, .L5, .L6, .L7);
  33. vv12 = .v.lvmirror(l1, v12, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  34. vv13 = .v.lvmirror(l1, v13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  35. l20 = .l.vv(v23, vv12, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  36. l21 = .l.vv(vv12, vv13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  37. l22 = .l.vv(vv13, v23, .red, .L2, .L3, .L4, .L5, .L6, .L7);
  38. vvv23 = .v.lvmirror(l4, v23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  39. vvv12 = .v.lvmirror(l4, vv12, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  40. l23 = .l.vv(vv13, vvv12, .red, .L2, .L3, .L4, .L5, .L6, .L7);
  41. l24 = .l.vv(vvv12, vvv23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  42. l25 = .l.vv(vvv23, vv13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  43. vvvv23 = .v.lvmirror(l7, vvv23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  44. vvvv13 = .v.lvmirror(l7, vv13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  45. l26 = .l.vv(vvv12, vvvv13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  46. l27 = .l.vv(vvvv13, vvvv23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  47. l28 = .l.vv(vvvv23, vvv12, .red, .L2, .L3, .L4, .L5, .L6, .L7);
  48. vvvvv12 = .v.lvmirror(l9, vvv12, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  49. vvvvv13 = .v.lvmirror(l9, vvvv13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  50. l29 = .l.vv(vvvv23, vvvvv13, .red, .L2, .L3, .L4, .L5, .L6, .L7);
  51. l30 = .l.vv(vvvvv13, vvvvv12, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  52. l31 = .l.vv(vvvvv12, vvvv23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  53. vvvvvv12 = .v.lvmirror(l10, vvvvv12, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  54. vvvvvv23 = .v.lvmirror(l10, vvvv23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  55. l32 = .l.vv(vvvvv13, vvvvvv12, .red, .L2, .L3, .L4, .L5, .L6, .L7);
  56. l33 = .l.vv(vvvvvv12, vvvvvv23, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  57. l34 = .l.vv(vvvvvv23, vvvvv13, .magenta, .L2, .L3, .L4, .L5, .L6, .L7);
  58. .text("Fagnano's Problem:", .L0);
  59. .text("", .L0);
  60. .text("Show that in an acute-angled triangle, the orthic triangle is the", .L0);
  61. .text("inscribed triangle of smallest perimeter.  (The orthic triangle is", .L0);
  62. .text("the triangle whose vertices are the feet of the altitudes.)", .L0);
  63. .text("In the figure above, the perimeter of the green triangle is always", .L0);
  64. .text("greater than the perimeter of the purple triangle.", .L0);
  65. u12 = .vonl(l2, -0.753847, -0.0657441, .green, .cross);
  66. u23 = .vonl(l1, -0.52559, -0.137284, .green, .cross);
  67. u13 = .vonl(l3, -0.618726, -0.305208, .green, .cross);
  68. uu12 = .v.lvmirror(l1, u12, .green, .L3, .L4, .L5, .L6, .L7);
  69. uu13 = .v.lvmirror(l1, u13, .green, .L3, .L4, .L5, .L6, .L7);
  70. uuu23 = .v.lvmirror(l4, u23, .green, .L3, .L4, .L5, .L6, .L7);
  71. uuu12 = .v.lvmirror(l4, uu12, .green, .L3, .L4, .L5, .L6, .L7);
  72. uuuu23 = .v.lvmirror(l7, uuu23, .green, .L3, .L4, .L5, .L6, .L7);
  73. uuuu13 = .v.lvmirror(l7, uu13, .green, .L3, .L4, .L5, .L6, .L7);
  74. uuuuu12 = .v.lvmirror(l9, uuu12, .green, .L3, .L4, .L5, .L6, .L7);
  75. uuuuu13 = .v.lvmirror(l9, uuuu13, .green, .L3, .L4, .L5, .L6, .L7);
  76. uuuuuu12 = .v.lvmirror(l10, uuuuu12, .green, .L3, .L4, .L5, .L6, .L7);
  77. uuuuuu23 = .v.lvmirror(l10, uuuu23, .green, .L3, .L4, .L5, .L6, .L7);
  78. l35 = .l.vv(u12, u13, .green);
  79. l37 = .l.vv(u23, u13, .green);
  80. l39 = .l.vv(u23, uu12, .green, .L3, .L4, .L5, .L6, .L7);
  81. l40 = .l.vv(uu12, uu13, .green, .L3, .L4, .L5, .L6, .L7);
  82. l41 = .l.vv(uu13, uuu23, .green, .L3, .L4, .L5, .L6, .L7);
  83. l42 = .l.vv(uuu23, uuu12, .green, .L3, .L4, .L5, .L6, .L7);
  84. l43 = .l.vv(uuu12, uuuu13, .green, .L3, .L4, .L5, .L6, .L7);
  85. l44 = .l.vv(uuuu13, uuuu23, .green, .L3, .L4, .L5, .L6, .L7);
  86. l45 = .l.vv(uuuu23, uuuuu12, .green, .L3, .L4, .L5, .L6, .L7);
  87. l46 = .l.vv(uuuuu12, uuuuu13, .green, .L3, .L4, .L5, .L6, .L7);
  88. l47 = .l.vv(uuuuu13, uuuuuu23, .green, .L3, .L4, .L5, .L6, .L7);
  89. l48 = .l.vv(uuuuuu23, uuuuuu12, .green, .L3, .L4, .L5, .L6, .L7);
  90. ll49 = .l.vv(u12, u23, .green, .L0, .L1, .L2);
  91. l49 = .l.vv(u12, u23, .yellow, .L3, .L4, .L5, .L6, .L7);
  92. l50 = .l.vv(u23, uu13, .yellow, .L3, .L4, .L5, .L6, .L7);
  93. l51 = .l.vv(uu13, uuu12, .yellow, .L3, .L4, .L5, .L6, .L7);
  94. l52 = .l.vv(uuu12, uuuu23, .yellow, .L3, .L4, .L5, .L6, .L7);
  95. l53 = .l.vv(uuuu23, uuuuu13, .yellow, .L3, .L4, .L5, .L6, .L7);
  96. l54 = .l.vv(uuuuu13, uuuuuu12, .yellow, .L3, .L4, .L5, .L6, .L7);
  97. .text("Proof:  First, reflect the original triangle across edge 23, then that", .L1);
  98. .text("triangle about 13, then about 12, then 23, and finally 31 as in the", .L1);
  99. .text("figure.  Note that line 12 is parallel to line 1''2'' (this is easy", .L1);
  100. .text("to see just by adding up angles).  You can also convince yourself", .L1);
  101. .text("that it's true by moving the points 1, 2, and 3 around.", .L1);
  102. .text("Next, see what happens when the orthic triangle is reflected through the", .L2);
  103. .text("same lines.  The line in red is equal in length to twice the perimeter", .L2);
  104. .text("of the orthic triangle.", .L2);
  105. .text("Finally, note what happens when any other triangle is reflected.", .L3);
  106. .text("The line corresponding to twice the perimeter is shown in yellow.", .L3);
  107. .text("Since the beginning and end points of the red path and yellow path", .L3);
  108. .text("are the same distance along parallel lines, the total distance", .L3);
  109. .text("covered is the same.  The red path, however, is always a straight", .L3);
  110. .text("line.  The yellow path is at least as long, and usually longer.", .L3);
  111. .text("  -- QED", .L3);
  112.